package towers;

import java.awt.Dimension;
import java.awt.geom.Point2D;

import javax.swing.ImageIcon;

import projectiles.Nuke;
import projectiles.Projectile;

/**
 * @author onbekend
 * @version 1.1
 * @since 2011-04-11
 */
public class NuclearBase extends Tower {

	// Het lijstje gegevens
	private static final int maxHealth = 1600;
	private static int health = maxHealth;
	private static final int range = 800;
	private static final int firerate = 1200;
	public static final int cost = 1200;
	private static final ImageIcon image = new ImageIcon("images/nuclearbase.gif");
	private static final Dimension size = new Dimension(NuclearBase.image.getIconWidth(),
			NuclearBase.image.getIconHeight());

	/**
	 * Constructor
	 * 
	 * @param position
	 *            De positie van de cannon meegeven
	 */
	/* /// Constructor //////////////////////////////////////// */
	public NuclearBase(Point2D.Double position) {
		super(position, health, NuclearBase.image, size, 0, range, firerate, cost);
	}

	/**
	 * Zorgt ervoor dat een projectiel afgeschoten word op de vijand waar op het
	 * moment op gericht word
	 */
	/* /// shoot //////////////////////////////////////// */
	public Projectile shoot() {
		updateFirerate();

		return new Nuke(this, getMiddle(), viewAngle, aimAtEnemy);
	}

	/**
	 * Zorgt er vooral voor dat een toren op een enemy richt, en zijn viewangle
	 * update zodat de toren naar de enemy gaat kijken
	 *
	 * @see Tower#update()
	 */
	/* /// update //////////////////////////////////////// */
	public boolean update() {
		super.update();

		// Is de enemy al dood?
		if (aimAtEnemy != null && aimAtEnemy.getHealth() <= 0) {
			aimAtEnemy = null;
		}

		return true;
	}

}